package thread

import (
	"fmt"
	"strconv"
	"time"
)

// 并发 - 单核CPU同时运行多个线程 - 某个时间节点同时有一个线程在执行 - 多线程程序在单核机器运行
// 并行 - 多核CPU同时运行多个线程 - 某个时间节点同时有多个线程在执行 - 多线程程序在多核机器运行
// golang 多线程优势 - 轻松上w
func Goroutine() {
	for i := 0; i < 10; i++ {
		fmt.Println("hello world" + strconv.Itoa(i))
		time.Sleep(time.Second)
	}
}

// MPG 模式
// M:操作系统的主线程（是物理线程）
// P:携程执行的时候的上下文
// G:携程
